import api from './auth'

// 获取学生列表
export const getStudentList = () => {
  return api.get('/api/api/v1/admin/student-review/list')
    .then(response => {
      return response
    })
    .catch(error => {
      // 处理不同的错误状态码
      if (error.response?.status === 401) {
        throw new Error('管理员身份验证失败，请重新登录')
      } else if (error.response?.status === 403) {
        throw new Error('权限不足，无法访问学生列表')
      } else if (error.response?.status === 500) {
        throw new Error('服务器错误，请稍后重试')
      } else {
        throw error
      }
    })
}

// 审核学生简历
export const reviewStudentResume = (studentId, action, reason = '') => {
  return api.post(`/api/v1/admin/student-review/${studentId}/review`, {
    action, // 'approve' 或 'reject'
    reason
  })
    .then(response => {
      // 检查响应状态码
      if (response.code === 200) {
        return response
      } else {
        throw new Error(response.message || '审核操作失败')
      }
    })
    .catch(error => {
      // 处理不同的错误状态码
      if (error.response?.status === 401) {
        throw new Error('管理员身份验证失败，请重新登录')
      } else if (error.response?.status === 403) {
        throw new Error('权限不足，无法执行审核操作')
      } else if (error.response?.status === 500) {
        throw new Error('服务器错误，请稍后重试')
      } else {
        throw error
      }
    })
}

// 获取学生详情
export const getStudentDetail = (studentId) => {
  return api.get(`/api/api/v1/admin/student-review/detail/${studentId}`)
    .then(response => {
      return response
    })
    .catch(error => {
      // 处理不同的错误状态码
      if (error.response?.status === 401) {
        throw new Error('管理员身份验证失败，请重新登录')
      } else if (error.response?.status === 403) {
        throw new Error('权限不足，无法获取学生详情')
      } else if (error.response?.status === 500) {
        throw new Error('服务器错误，请稍后重试')
      } else {
        throw error
      }
    })
}

// 通过学生审核
export const approveStudentReview = (studentId) => {
  return api.post(`/api/api/v1/admin/student-review/approve/${studentId}`)
    .then(response => {
      // 检查响应格式
      if (response.success === true) {
        return response
      } else {
        throw new Error(response.message || '通过审核操作失败')
      }
    })
    .catch(error => {
      // 处理不同的错误状态码
      if (error.response?.status === 401) {
        throw new Error('管理员身份验证失败，请重新登录')
      } else if (error.response?.status === 403) {
        throw new Error('权限不足，无法执行通过审核操作')
      } else if (error.response?.status === 500) {
        throw new Error('服务器错误，请稍后重试')
      } else {
        throw error
      }
    })
}

// 驳回学生审核
export const rejectStudentReview = (studentId, rejectionReason) => {
  return api.post(`/api/api/v1/admin/student-review/reject/${studentId}`, {
    rejectionReason
  })
    .then(response => {
      // 检查响应格式
      if (response.success === true) {
        return response
      } else {
        throw new Error(response.message || '驳回审核操作失败')
      }
    })
    .catch(error => {
      // 处理不同的错误状态码
      if (error.response?.status === 401) {
        throw new Error('管理员身份验证失败，请重新登录')
      } else if (error.response?.status === 403) {
        throw new Error('权限不足，无法执行驳回审核操作')
      } else if (error.response?.status === 500) {
        throw new Error('服务器错误，请稍后重试')
      } else {
        throw error
      }
    })
}

export default {
  getStudentList,
  reviewStudentResume,
  getStudentDetail,
  approveStudentReview,
  rejectStudentReview
} 